package com.wlc.oop.innerclassdemo;

/**
 * @author 王立朝 wanglichao@champion-credit.com
 * @description 非静态内部类
 * @date 2021-07-06 17:08
 */
public class Hero {
    // 姓名
    private String name;
    // 血量
    float hp;
    // 护甲
    float armor;
    // 移动速度
    int moveSpeed;

    public void test(){
        System.out.println("外部非静态方法");
    }
    public static void test2(){
        System.out.println("外部静态方法");
    }
    // 非静态内部类只有在一个外部对象存在的时候才有意义
    // 对于战斗成绩只有在英雄存在的时候才有意义
    class BattleScore {
        int kill;
        int die;

        public String legendary() {
            test();
            test2();
            if (kill > 8) {
                return "超神";
            }
            return "没有超神";


        }
    }

    public static void main(String[] args) {
        Hero hero = new Hero();
        hero.name="盖伦";
        // 实例化内部类
        // BattleScore对象只有在一个英雄对象存在的时候才有意义
        // 所以其实例化必须建立在一个外部类对象的基础之上
        BattleScore battleScore = new Hero().new BattleScore();
        battleScore.kill = 8;
        System.out.println(battleScore.legendary());
    }

}
